#pragma once


#include "VertexBase.h"
#include <set>
#include <algorithm>



using namespace std;
class Path
{
public:
	Path(int start, int end);
	~Path(void);
	
	void add(Path* input);
	void add(int input);

	int getStart();
	int getEnd();

	vector<int> getRoute();
	void print();
	int size();

	void setLength(double l);
	double getLength() const;
	
	void getEdges(set<EdgeBase*>& out, map<int,EdgeBase*> edges, map<int,VertexBase*> verts);
	void getVertices(set<VertexBase*>& out, map<int,VertexBase*> verts);

private:

	int getEdgeIndex(VertexBase* a, VertexBase* b);

	vector<int> route;
	int end;
	int start;

	double length;
};

